package test;

/**
 * @author WYC
 * @version 1.0
 * @ClassName SingletonExample
 * @date 2024/12/14 0:24
 * @description
 */
// 单例模式
class Singleton {
    // 使用 volatile 确保多线程环境下实例正确创建
    private static volatile Singleton instance;

    // 私有构造函数，防止外部创建实例
    private Singleton() {}

    // 获取唯一实例
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                // 双重检查锁定，确保只创建一个实例
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }

    public void showMessage() {
        System.out.println("这是单例模式的实例");
    }
}

public class SingletonExample {
    public static void main(String[] args) {
        // 获取唯一实例
        Singleton singleton = Singleton.getInstance();
        singleton.showMessage();
    }
}
